package br.com.news.business;

import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import br.com.news.business.utils.GenericBusiness;
import br.com.news.utils.business.exception.BusinessException;
import br.com.news.utils.business.interfaces.IUsuarioBusiness;
import br.com.news.utils.database.beans.UsuarioBean;
import br.com.news.utils.database.exception.DataBaseServiceException;
import br.com.news.utils.database.interfaces.IUsuarioServiceDb;

@Named
public class UsuarioBusiness extends GenericBusiness implements
IUsuarioBusiness {

	@Inject
	private IUsuarioServiceDb usuarioServiceDb;

	@Override
	public List<UsuarioBean> testeUsuarioList() {
		return usuarioServiceDb.teste();
	}

	@Override
	public List<UsuarioBean> findAll() throws BusinessException {
		try {
			return usuarioServiceDb.findAll();
		} catch (DataBaseServiceException e) {
			throw new BusinessException(e);
		}
	}

	@Override
	public void save(UsuarioBean usuario) throws BusinessException {
		try {
			usuarioServiceDb.insert(usuario);
		} catch (DataBaseServiceException e) {
			throw new BusinessException(e);
		}
	}
	
	@Override
	public List<UsuarioBean> findByExample(UsuarioBean usuario) {
		return usuarioServiceDb.findByExample(usuario);
	}
	
	@Override
	public List<UsuarioBean> buscaTodosOsUsuariosAtivos() {
		return usuarioServiceDb.buscaTodosOsUsuariosAtivos();
	}

	@Override
	public UsuarioBean autenticar(UsuarioBean usuarioBean) {
		return usuarioServiceDb.autenticar(usuarioBean);
	}
	
	@Override
	public void update(UsuarioBean usuarioBean) throws BusinessException {
		try {
			usuarioServiceDb.update(usuarioBean);
		} catch (DataBaseServiceException e) {
			throw new BusinessException(e);
		}
	}
}
